/**
*  nuxt项目目录/composables/http.ts
*/
//  基于useFetch()的网络请求封装

//全局基础URL
const BASEURL: string = "http://localhost:8081";  //全局后台服务器请求地址

//定义ts变量类型接口
// interface HttpParms {
//     baseURL?: string,  //请求的基本URL，即后台服务器地址，（若服务器请求地址只有一个，可不填）
//     url: string,      //请求api接口地址
//     method?: any,   //请求方法
//     query?: any,       //添加查询搜索参数到URL
//     body?: any,         //请求体
//     params?: any
// }
/**
 * 网络请求方法
 * @param obj 请求参数
 * @returns 响应结果
 */
export const http = (url:string = '', params: any = {}, type:any = 'GET', headers:any = {}) => {
    const res = new Promise<void>((resolve, reject) => {
        useFetch(
            BASEURL + url,
            {
                method: type,
                query: type === 'GET' ? params : null,
                body: type === 'POST' ? params : null,
                onRequest({ request, options }) {
                    // 设置请求报头
                    options.headers = options.headers || {}
                    /**如果接口需求携带token请求，则可先自行使用官方的useCookie()方法设置Cookie存储后，再使用useCookie()方法，取出token使用。如下例子：*/
                    const token = useCookie('token')
                    //@ts-ignore
                    options.headers.Authorization = 'Bearer ' + token.value||null
                },
                onRequestError({ request, options, error }) {
                    // 处理请求错误
                    console.log("服务器链接失败!")
                    reject(error)
                },
                onResponse({ request, response, options }) {
                    // 处理响应数据
                    resolve(response._data)
                },
                onResponseError({ request, response, options }) {
                    // 处理响应错误
                }
            },

        )
    })
    return res;

}


// import { http } from '~/composables/http';

// const obj = {
//     method: "GET",
//     url: '/nav',
//     //"POST"方法传参:
//     // body: {
//     //     name: "测试",
//     //     phone: "176xxxxxx1",
//     //     password: "test123",
//     // },
//     //"GET"方法URL传参:
//     // query: {
//     //     name:"test"
//     // }
// }
// //开始请求
// const {data:footerList} = await http(obj)